package org.dromara.manu.domain.bo;

import org.dromara.manu.domain.ManuKpiMaster;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 主数据业务对象 manu_kpi_master
 *
 * @author Bin Liu
 * @date 2024-08-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ManuKpiMaster.class, reverseConvertGenerate = false)
public class ManuKpiMasterBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 名称
     */
    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 简述
     */
    @NotBlank(message = "简述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String description;

    /**
     * 数据类别
     */
    @NotBlank(message = "数据类别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String category;

    /**
     * 数据类型
     */
    @NotBlank(message = "数据类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataCategory;

    /**
     * 范围
     */
    @NotBlank(message = "范围不能为空", groups = { AddGroup.class, EditGroup.class })
    private String scope;

    /**
     * 是否按年更新
     */
    @NotNull(message = "是否按年更新不能为空", groups = { AddGroup.class, EditGroup.class })
    private Boolean byAnnual;

    /**
     * 是否按月更新
     */
    @NotNull(message = "是否按月更新不能为空", groups = { AddGroup.class, EditGroup.class })
    private Boolean byMonth;

    /**
     * 是否按周更新
     */
    @NotNull(message = "是否按周更新不能为空", groups = { AddGroup.class, EditGroup.class })
    private Boolean byWeek;

    /**
     * 是否按天更新
     */
    @NotNull(message = "是否按天更新不能为空", groups = { AddGroup.class, EditGroup.class })
    private Boolean byDaily;

    /**
     * 是否按班更新
     */
    @NotNull(message = "是否按班更新不能为空", groups = { AddGroup.class, EditGroup.class })
    private Boolean byShift;

    /**
     * 配置串
     */
    private String screCode;


}
